﻿namespace HumanElement.Xna
{
    public interface ICamera : IEntity, IPhysical
    {
        /// <summary>
        /// Gets a value indicating whether this <see cref="ICamera"/> is active.
        /// </summary>
        /// <value><c>true</c> if active; otherwise, <c>false</c>.</value>
        bool Active { get; set; }

        /// <summary>
        /// Gets or sets the target.
        /// </summary>
        /// <value>The target.</value>
        IPhysical Target { get; set; }

        /// <summary>
        /// Gets or sets the stage.
        /// </summary>
        /// <value>The stage.</value>
        IStage Stage { get; set; }

        /// <summary>
        /// Renders the scene.
        /// </summary>
        /// <returns></returns>
        int RenderFrame(CameraContext context);
    }
}